删除squid缓存

        如何清除squid 缓存

  1. 首先在squid 的主配置文件中添加acl 列表,并允许受信任的主机有权限清除缓存
1
2
3
4
acl managercache src 192.168.1.145 127.0.0.1
acl Purge method PURGE
http_access allow managercache Purge
http_access deny Purge
  1. 清除squid 中一条缓存
1
/usr/local/squid/bi/squidclient -h 192.168.1.145 -p80 -m PURGE http://www.linuxidc.com/404.html
  1. 批量清除squid 缓存中的文件

        脚本如下

1
2
3
4
5
6
7
#!/bin/sh
squidcache_path="/usr/local/squid/var/cache/"
squidclient_path="/usr/local/squid/bin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p80 $url
done

        注:

  • squidcache_path 是squid 缓存路径
  • squidclient_path 是squidclient 命令的 路径
  • -p 是指定squid 监听的端口

        给clearcache.sh 执行权限

1
#chmod +x clearcache.sh
  1. 使用方法

        用法:

  • 清除所有Flash缓存(扩展名.swf):
1
./clear_squid_cache.sh swf
  • 清除URL中包含sina.com.cn的所有缓存:
1
./clear_squid_cache.sh sina.com.cn
  • 清除文件名为zhangyan.jpg的所有缓存:
1
./clear_squid_cache.sh zhangyan.jpg